// ==UserScript==
// @name           Mushify It
// @namespace      http://code.google.com/p/mushify-it
// @description    Mushify It
// @include        http://mush.twinoid.com/
// @require        http://code.jquery.com/jquery.min.js
// @updateURL      http://mushify-it.googlecode.com/files/mushifyIt.user.js
// @version        0.1
// ==/UserScript==

// Nous sommes sur une page avec l'onglet "Canal de discussion"
if ($('.cdWallChannel.cdStdWall')) {

    // Redéfinition de Main.resetJs
    // Appelé en callback après une actualisation du chat
    unsafeWindow.Main.resetJs = function (doActions) {
        if(doActions == null) doActions = true;
        new unsafeWindow.js.JQuery(".cdLoading").remove();
        unsafeWindow.Main.onFirstFrame(false);
        unsafeWindow.Main.removeTip();
        unsafeWindow.Main.doChat();
        unsafeWindow.Main.refreshSelection();
        if(doActions) unsafeWindow.Main.acListMaintainer.refresh(true);
        unsafeWindow.Main.syncInvOffset(null,true);
        unsafeWindow.Main.doChatPacks();
        unsafeWindow.Main.topChat();
        unsafeWindow.Main.onRealLoad();

        mushifyChat();
    }

    function mushifyChat() {

        // Reset des textareas
        $('textarea.chatbox').attr('placeholder', 'Mon message ici !');
        $('textarea.chatbox').val('');

        // Désactivation de la suppression automatique du message lors d'un focus
        unsafeWindow.Main.onWallFocus = function(){}

        // Désactivation de l'envoi d'un message vide
        $('.chatForm > textarea.chatbox').removeAttr('onkeydown');

        $('.chatForm > textarea.chatbox').bind('keydown', function(e) {

            if (!(e.which == 13 && e.ctrlKey == 0 && $(this).val().trim() == '')) {
                unsafeWindow.Main.onChatInput(e);
            } else {
                e.preventDefault();
            }

        });

        $('.chatForm > textarea.chatbox').bind('keyup', function(e) {
            if ($(this).val().trim() == '') {
                $('input.chatbutton').hide();
            }
        });

        // Désactivation de l'envoi d'une réponse vide
        $('.reply > textarea.chatbox').removeAttr('onkeydown');

        $('.reply > textarea.chatbox').bind('keydown', function(e) {

            if (!(e.which == 13 && e.ctrlKey == 0 && $(this).val().trim() == '')) {
                unsafeWindow.Main.onWallInput(e);
            } else {
                e.preventDefault();
            }

        });
    }

    // On appelle la fonction une première fois au chargement de la page
    mushifyChat();
}